package hottargui.domain;

//TODO Consider encaptulation of  PlayerColor[] getWinnerPrimaryObjectiv() and PlayerColor getWinnerSecundaryObjectiv();

/**
 * Responsibilitys:
 * 
 * a) Returns the winner of a game, if any. There are usualy 2 objectives to determin a winner
 * If the primary objectiv is fullfilled by two ore more players, 
 * the secondary objectiv determins who wins.  
 *  
 */
public interface WinnerStrategy {

	/** 
	 * From the objectives of the game return the winner
	 * @return the winner of the game. Returns PlayerColor.None 
	 * if two or more players are equals in both objectives
	 * @return the winner of the game, and if tie PlayerColor.None is returned
	 */
	PlayerColor getTheWinner();


	/**
	 * if there is one ore more winners on the primary objective 
	 * the color of the players  returned.
	 * 
	 * if a winner hasn't been found the value PlayerColor.None is returned  
	 * @return array of playes who are equal in objective
	 **/	
	PlayerColor[] getWinnerPrimaryObjectiv();

	/**
	 * if there is a winner on the primary objective 
	 * the color of the playert is returned.
	 * 
	 * if a winner hasn't been found the value PlayerColor.None is returned  
	 * @return the winner of the game or PlayerColor.None
	 */
	PlayerColor getWinnerSecundaryObjectiv();


}
